const api = require("../../../config/api");

// pages/MyList/Result/Result.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 1检测详情2维修结果
    resultType: '',
    // 工单编号
    workOrderCode: '',
    checkInfo: {},
    photoList: [],
    testingAgreeImg: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取从工单详情页面传来的工单号
    const workOrderCode = options.workOrderCode;
    const resultType = options.resultType;
    const testingCode = options.testingCode;
    const repairCode = options.repairCode;
    this.setData({
      workOrderCode: workOrderCode,
      resultType: resultType,
      testingCode: testingCode,
      repairCode: repairCode,
    })
    if (testingCode != null) {
      // console.log('检测结果', testingCode)
      this.fetchCheckInfo();
    } else if (repairCode != null) {
      // console.log('维修结果', repairCode)
      this.fetchFixInfo();
    }
  },
  // 获取检测结果
  fetchCheckInfo() {
    wx.request({
      url: api.checkInfo,
      method: 'POST',
      data: {
        testingCode: this.data.testingCode
      },
      success: (res) => {
        if (res.data.code == 200) {
          console.log('获取的检测结果详情', res.data.data)
          this.setData({
            checkInfo: res.data.data
          })
          this.splitImageUrls();
        } else {
          wx.showToast({
            title: res.data.mesage,
            icon: 'none'
          })
        }
      },
      fail() {
        wx.showToast({
          title: '网络问题',
          icon: 'none'
        })
      },
    })
  },
  // 获取维修结果
  fetchFixInfo() {
    wx.request({
      url: api.fixInfo,
      method: 'POST',
      data: {
        repairCode: this.data.repairCode
      },
      success: (res) => {
        if (res.data.code == 200) {
          console.log('获取的维修结果详情', res.data.data)
          this.setData({
            fixInfo: res.data.data
          })
          this.splitImageUrls();
        } else {
          wx.showToast({
            title: res.data.mesage,
            icon: 'none'
          })
        }
      },
      fail() {
        wx.showToast({
          title: '网络问题',
          icon: 'none'
        })
      },
    })
  },
  fetchAllInfo() {
    // 先调用工单详情接口，获取检测编号
    wx.request({
      url: api.getWorkOrderInfo,
      method: 'POST',
      data: {
        workOrderCode: this.data.workOrderCode
      },
      success: (res) => {
        if (res.data.code == 200) {
          console.log('获取的工单详情', res.data.data)
          this.setData({
            testingCode: res.data.data.testingCode
          });
          console.log('获取的检测编号', this.data.testingCode)

          // 请求获取检测结果接口
          wx.request({
            url: api.getTestingInfo,
            method: 'POST',
            data: {
              testingCode: this.data.testingCode
            },
            success: (res) => {
              if (res.data.code == 200) {
                const RES = res.data.data
                this.setData({
                  tarList: RES.tarList,
                  testingTotal: RES.testingTotal,
                  testingContent: RES.testingContent,
                })
              } else {
                wx.showToast({
                  title: res.data.mesage,
                  icon: 'none'
                })
              }
            },
            fail() {
              wx.showToast({
                title: '网络请求失败',
                icon: 'none'
              })
            },
          })
        } else {
          wx.showToast({
            title: res.data.mesage,
            icon: 'none'
          })
        }
      },
      fail() {
        wx.showToast({
          title: '网络问题',
          icon: 'none'
        })
      },
    })



  },
  // 分割图片
  splitImageUrls() {
    console.log('resultType',this.data.resultType)
    var Imgfile=[]
    if (this.data.resultType == 1) {
      console.log('checkInfo',this.data.checkInfo)
      Imgfile = this.data.checkInfo.testingImgFile;
      console.log('1')
    } else {
      Imgfile = this.data.fixInfo.repairImgFile;
      console.log('2')
    }
    console.log('Imgfile',Imgfile)
    var photoList = [];
    if (Imgfile.includes('&&')) {
      // 使用逗号切割字符串
      photoList = Imgfile.split('&&');
    } else {
      // 如果没有逗号，则直接将 Imgfile 放入 pic 数组中
      photoList = [Imgfile];
    }
    console.log('切割之后的数组', photoList);
    this.setData({
      photoList: photoList
    });
  },
  vetOrNot(params = {}) {
    console.log('参数:', params);
    const {
      testingAgreeImg,
      testingAgree
    } = params; // 解构获取对象内的值
    wx.request({
      url: api.vet,
      method: 'POST',
      data: {
        testingCode: this.data.testingCode,
        testingAgree,
        testingAgreeImg,
      },
      success: (res) => {
        if (res.data.code == 200) {
          console.log('同意/不同意：', res.data)
          wx.navigateBack();
        } else {
          wx.showToast({
            title: res.data.mesage,
            icon: 'none'
          })
        }
      },
      fail() {
        wx.showToast({
          title: '网络问题',
          icon: 'none'
        })
      },
    })
  },
  sign: function (e) {
    const testingAgree = e.currentTarget.dataset.param;
    wx.setStorageSync('testingAgree', testingAgree);
    //页面跳转传参
    wx.navigateTo({
      url: `/pages/sign/sign`
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    var signature = wx.getStorageSync('signature');
    const testingAgree = wx.getStorageSync('testingAgree');
    wx.removeStorageSync('signature'); // 清理缓存
    wx.removeStorageSync('testingAgree'); // 清理缓存
    if (signature && testingAgree) {
      console.log('signature:', signature);
      console.log('testingAgree:', testingAgree);
      // 传输文件
      this.onUploadImage(signature)
        .then((testingAgreeImg) => {
          console.log('上传成功，图片地址:', testingAgreeImg);
          this.vetOrNot({
            testingAgreeImg,
            testingAgree
          })
        })
        .catch((error) => {
          console.error('上传失败:', error);
        });
    }
  },
  // 上传签名图片
  onUploadImage: function (filepath) {
    return new Promise((resolve, reject) => {
      console.log('上传文件1');
      this.uploadFile({
        fileType: 'image', // 文件类型
        filePath: filepath,
        successCallback: (fileUrl) => {
          console.log('上传图片地址:', fileUrl);
          this.setData({
            testingAgreeImg: fileUrl
          });
          resolve(fileUrl); // 返回 fileUrl
        },
        failCallback: (error) => {
          console.error('上传失败:', error);
          reject(error); // 返回错误
        }
      });
    });
  },

  // 通用文件上传函数
  uploadFile: function (options) {
    const {
      filePath,
      fileType, // 文件类型
      sourceType = ['album', 'camera'], // 选择文件来源
      count = 1, // 可选择的文件数量
      name = 'file', // 后端接收文件的字段名
      successCallback, // 上传成功后的回调
      failCallback // 上传失败后的回调
    } = options;
    if (filePath) {
      console.log('已有文件')
      wx.uploadFile({
        url: api.uploadFile,
        filePath: filePath, // 本地文件路径
        name: name, // 后端接收文件的字段名
        success: (uploadResult) => {
          const data = JSON.parse(uploadResult.data);
          console.log('上传文件结果:', data);
          if (data.code === 200) {
            wx.showToast({
              title: '上传成功',
              icon: 'success'
            });
            if (typeof successCallback === 'function') {
              successCallback(data.data); // 执行成功回调，传入文件地址
            }
          } else {
            wx.showToast({
              title: data.message || '上传失败',
              icon: 'none'
            });
            if (typeof failCallback === 'function') {
              failCallback(data);
            }
          }
        },
        fail: (error) => {
          console.error('上传失败:', error);
          wx.showToast({
            title: '上传失败，请重试',
            icon: 'none'
          });
          if (typeof failCallback === 'function') {
            failCallback(error);
          }
        }
      });
    }
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 返回上一页
   */
  toBack: function () {
    wx.navigateBack();
  },
})